//#include "GeneticAlgorithm.h"
//
//GeneticAlgorithm::GeneticAlgorithm(const int numberOfElements,
//								   const int numberOfAttributes,
//								   const int numberOfIterations,
//								   const float percentOfLeaders,
//								   const float percentOfMutants)
//{
//	this->numberOfElements = numberOfElements;
//	this->numberOfAttributes = numberOfAttributes;
//	this->numberOfIterations = numberOfIterations;
//	this->percentOfLeaders = percentOfLeaders;
//	this->percentOfMutants = percentOfLeaders;
//}
//
//
//
//Mat_<KeySort> GeneticAlgorithm::initializeElements()
//{
//	Mat_<KeySort> elements(1, numberOfElements);
//	for (int i = 0; i < numberOfElements; i++)
//	{
//		elements(0,i) = KeySort(numberOfAttributes);
//	}
//	for (int i = 0; i < numberOfElements; i++)
//	{
//		for (int j = 0; j < numberOfAttributes; j++)
//		{
//			elements.at<KeySort>(0,i).key = 0;
//			elements.at<KeySort>(0,i).element.at<int>(0,j) = (rand() % 2);
//		}
//	}
//	return elements;
//}
//
//int countNumberOfAttributes(Mat data)
//{
//	int cnt;
//	for (int i = 0; i < data.cols; i++)
//	{
//		if (data.at<int>(0,i) == 1)
//		{
//			cnt++;
//		}
//	}
//	return cnt;
//}
//
//Mat createDataMat(Mat_<KeySort> data, int n)
//{
//	int count = countNumberOfAttributes(data.at<KeySort>(0,n).element);
//	Mat_<float> curr( data.rows, count);
//	for (int i = 0; i < data.rows; i++)
//	{
//		
//		for (int j = 0; j < count; j++)
//		{
//			if (data.at<KeySort>(0,i).element.at<int>(0,j) == 1)
//			{
//				curr.at<float>(i,j) = data.at<float>(i,j);
//			}
//		}
//	}
//}
//
//Mat createLabelsMat(Mat_<KeySort> data, int n)
//{
//	int count = countNumberOfAttributes(data.at<KeySort>(0,n).element);
//	Mat_<float> curr( labels.rows, count);
//	for (int i = 0; i < labels.rows; i++)
//	{
//		
//		for (int j = 0; j < count; j++)
//		{
//			if (data.at<KeySort>(0,i).element.at<int>(0,j) == 1)
//			{
//				curr.at<float>(i,j) = labelsMat.at<float>(i,j)
//			}
//		}
//	}
//}
//
//Mat GeneticAlgorithm::runGeneticAlgorithm()
//{
//	//Initialize
//	srand(time(NULL));
//	Mat_<KeySort> elements = initializeElements();
//
//	for (int N = 0; N < numberOfIterations; N++)
//	{
//		Mat_<KeySort> newElements = initializeElements();
//		for (int i = 0; i < numberOfElements; i++)
//		{
//			Mat data = createDataMat(
//		}
//	}
//}
